开始之前:

1. 追踪物体输出相关数据

当HUSKYLENS 2检测到可追踪的目标物体时,可获取相关追踪数据。可以获取的数据有:物体的ID、名称、xy坐标、宽度、高度。

示例程序如下。

#include "unihiker_k10.h"
#include "DFRobot_HuskylensV2.h"
// 创建对象
HuskylensV2  huskylens;
UNIHIKER_K10 k10;
uint8_t      screen_dir=2;


// 主程序开始
void setup() {
	k10.begin();
	Wire.begin();
  while (!huskylens.begin(Wire)) {
    delay(100);
  }
	k10.initScreen(screen_dir);
	k10.creatCanvas();
	huskylens.switchAlgorithm(ALGORITHM_OBJECT_TRACKING);
}
void loop() {
	huskylens.getResult(ALGORITHM_OBJECT_TRACKING);
	if ((huskylens.available(ALGORITHM_OBJECT_TRACKING))) {
		k10.canvas->canvasText((String("物体ID:") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, ID)))), 1, 0x0000FF);
		k10.canvas->canvasText((String("物体名称:") + String((RET_ITEM_STR(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, name)))), 3, 0x0000FF);
		k10.canvas->canvasText((String("物体xy坐标:") + String((String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, xCenter))) + String((String(",") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, yCenter)))))))), 5, 0x0000FF);
		k10.canvas->canvasText((String("物体宽高:") + String((String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, width))) + String((String(",") + String((RET_ITEM_NUM(huskylens.getCachedCenterResult(ALGORITHM_OBJECT_TRACKING), Result, height)))))))), 7, 0x0000FF);
	}
	k10.canvas->updateCanvas();
	delay(50);
}

上传程序,等待程序上传完成后。

将HUSKYLENS 2摄像头对准要追踪的物体(追踪物体须先框选目标,详见 物体追踪使用说明

框选完成后,对准要追踪的目标物体,可观察输出结果。

**运行结果:**可输出追踪到的物体ID、名称、xy坐标、宽度、高度。物体名称默认为"物体"。

Interface Diagram